const { contextBridge, ipcRenderer } = require('electron')

contextBridge.exposeInMainWorld('versions', {
    node: () => process.versions.node,
    chrome: () => process.versions.chrome,
    electron: () => process.versions.electron,
    // 使用 invoke，您将获得作为 Promise 返回到原始 API 调用的响应值
    // 渲染进程【发送】“ping”的通道指令
    ping: () => ipcRenderer.invoke('ping')
})

contextBridge.exposeInMainWorld('electronAPI', {
    // 出于 安全原因，我们不会直接暴露整个 ipcRenderer.send API。 确保尽可能限制渲染器对 Electron API 的访问。
    // 渲染进程【发送】“打开设置标题”的通道指令
    setTitle: (title) => ipcRenderer.send('set-title', title),
    // 渲染进程【发送】“打开文件”的通道指令
    openFile: () => ipcRenderer.invoke('dialog:openFile'),
    // 渲染进程【监听】“更新数字”的通道指令
    handleCounter: (callback) => ipcRenderer.on('update-counter', callback)
})